Group Predictions

Row

Win percentage for the week

Season Win Percentage

Games Correct

71

Games Picked

107

Number of predictions

131

Row

This Week’s Predictions
Game Prediction Winner Correct Correct Votes Correct Percent
1 Denver Broncos Denver Broncos Yes 66 0.5038
2 Jacksonville Jaguars Jacksonville Jaguars Yes 86 0.6565
3 Cincinnati Bengals Cincinnati Bengals Yes 123 0.9389
4 Detroit Lions Detroit Lions Yes 70 0.5344
5 Houston Texans Green Bay Packers No 63 0.4809
6 Indianapolis Colts Indianapolis Colts Yes 112 0.8550
7 Philadelphia Eagles Philadelphia Eagles Yes 103 0.7863
8 Atlanta Falcons Seattle Seahawks No 29 0.2214
9 Buffalo Bills Buffalo Bills Yes 129 0.9847
10 Washington Commanders Washington Commanders Yes 129 0.9847
11 Los Angeles Rams Los Angeles Rams Yes 81 0.6183
12 Kansas City Chiefs Kansas City Chiefs Yes 89 0.6794
13 Pittsburgh Steelers Pittsburgh Steelers Yes 103 0.7863
14 Baltimore Ravens Baltimore Ravens Yes 94 0.7176
15 Los Angeles Chargers Arizona Cardinals No 35 0.2672

Individual Predictions

row

Individual Table

Individual Results
Week 7
Name Weekly # Correct Percent Weeks Picked Season Percent Adj Season Percent Season Trend
Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7
Robert Gelo 14 8 9 9 8 13 13 0.8667 7 0.6916 0.6916
Keven Talbert 10 7 9 11 9 14 13 0.8667 7 0.6822 0.6822
Chester Todd 13 8 8 8 9 13 13 0.8667 7 0.6729 0.6729
Philip Driskill 12 7 8 10 8 NA 13 0.8667 6 0.6237 0.5346
Stephen Bush 9 7 4 10 9 13 13 0.8667 7 0.6075 0.6075
Brittany Pillar NA NA NA NA NA 10 12 0.8000 2 0.7586 0.2167
Chris Papageorge 14 8 10 11 8 12 12 0.8000 7 0.7009 0.7009
Bruce Williams 13 9 10 8 9 13 12 0.8000 7 0.6916 0.6916
Kevin Kehoe 13 7 9 10 8 13 12 0.8000 7 0.6729 0.6729
Aubrey Conn 13 7 10 9 8 12 12 0.8000 7 0.6636 0.6636
Michael Pacifico 13 8 7 9 9 12 12 0.8000 7 0.6542 0.6542
Travis Delagardelle 11 12 10 8 6 11 12 0.8000 7 0.6542 0.6542
Michelle Fraterrigo 11 8 9 9 7 11 12 0.8000 7 0.6262 0.6262
Christopher Sims 11 9 10 8 7 10 12 0.8000 7 0.6262 0.6262
Rafael Torres 12 9 8 7 8 10 12 0.8000 7 0.6168 0.6168
Akilah Gamble 9 NA 12 9 6 8 12 0.8000 6 0.6154 0.5275
David Humes 10 9 8 11 5 8 12 0.8000 7 0.5888 0.5888
Pablo Burgosramos 9 5 8 9 5 14 12 0.8000 7 0.5794 0.5794
Yiming Hu 12 NA 7 7 6 8 12 0.8000 6 0.5714 0.4898
Ronald Schmidt 10 10 5 9 6 8 12 0.8000 7 0.5607 0.5607
George Mancini 11 8 6 NA 8 6 12 0.8000 6 0.5604 0.4803
Kyle May 10 8 5 6 8 NA 12 0.8000 6 0.5269 0.4516
Richard Conkle 7 6 6 8 7 10 12 0.8000 7 0.5234 0.5234
Steven Maisonneuve NA NA NA NA 11 10 11 0.7333 3 0.7442 0.3189
Robert Cunningham 14 9 10 12 8 12 11 0.7333 7 0.7103 0.7103
Anthony Bloss 13 8 8 11 8 13 11 0.7333 7 0.6729 0.6729
Randolph Tidd 11 7 8 12 NA 12 11 0.7333 6 0.6559 0.5622
David Dupree 13 8 10 9 7 11 11 0.7333 7 0.6449 0.6449
George Sweet 13 9 6 10 11 9 11 0.7333 7 0.6449 0.6449
Ryan Cvik 10 8 9 11 9 11 11 0.7333 7 0.6449 0.6449
Nicholas Cinco 12 8 NA NA 6 11 11 0.7333 5 0.6400 0.4571
Paul Seitz 11 9 9 NA 8 10 11 0.7333 6 0.6374 0.5463
Clevante Granville 9 11 NA NA 5 11 11 0.7333 5 0.6267 0.4476
Jeremy Stieler 11 9 6 11 6 13 11 0.7333 7 0.6262 0.6262
Heather Ellenberger 13 8 7 8 7 12 11 0.7333 7 0.6168 0.6168
Ramar Williams 10 8 7 11 8 11 11 0.7333 7 0.6168 0.6168
Matthew Olguin 10 8 9 9 7 12 11 0.7333 7 0.6168 0.6168
Bryson Scott 10 9 7 NA 7 12 11 0.7333 6 0.6154 0.5275
Kenneth Nielsen 13 8 7 NA 8 9 11 0.7333 6 0.6154 0.5275
Brayant Rivera 10 8 9 8 6 13 11 0.7333 7 0.6075 0.6075
Jonathan Knight 13 10 9 6 7 NA 11 0.7333 6 0.6022 0.5162
Montee Brown 10 6 8 7 8 14 11 0.7333 7 0.5981 0.5981
Vincent Scannelli 11 7 7 11 8 8 11 0.7333 7 0.5888 0.5888
Jennifer Wilson 11 9 10 6 NA 7 11 0.7333 6 0.5806 0.4977
Earl Dixon 10 9 6 9 9 NA 11 0.7333 6 0.5806 0.4977
Nicholas Nguyen 11 8 5 8 7 12 11 0.7333 7 0.5794 0.5794
Scott Lefton 10 8 8 7 7 11 11 0.7333 7 0.5794 0.5794
Thomas Mccoy 10 7 6 8 9 11 11 0.7333 7 0.5794 0.5794
Cade Martinez 10 7 8 8 6 11 11 0.7333 7 0.5701 0.5701
Walter Archambo 8 8 7 9 6 12 11 0.7333 7 0.5701 0.5701
Ryan Shipley 11 6 10 8 5 9 11 0.7333 7 0.5607 0.5607
Wayne Schofield 7 5 9 5 7 7 11 0.7333 7 0.4766 0.4766
Matthew Blair NA NA NA NA NA 11 10 0.6667 2 0.7241 0.2069
Marc Agne 14 7 9 13 6 13 10 0.6667 7 0.6729 0.6729
Shaun Dahl 14 7 9 11 10 10 10 0.6667 7 0.6636 0.6636
William Schouviller 12 7 9 9 11 13 10 0.6667 7 0.6636 0.6636
Michael Linder 11 9 9 NA NA 12 10 0.6667 5 0.6623 0.4731
Nathan Brown 13 8 9 11 9 NA 10 0.6667 6 0.6452 0.5530
Bradley Hobson 13 7 8 11 7 13 10 0.6667 7 0.6449 0.6449
Karen Coleman 13 6 NA 11 9 9 10 0.6667 6 0.6374 0.5463
Shawn Carden 10 9 10 10 8 11 10 0.6667 7 0.6355 0.6355
Erik Neumann 12 8 9 9 7 13 10 0.6667 7 0.6355 0.6355
Jennifer Bouland 13 8 10 7 8 11 10 0.6667 7 0.6262 0.6262
Randy Dick 11 7 8 8 9 14 10 0.6667 7 0.6262 0.6262
Kevin Buettner 12 8 8 10 7 11 10 0.6667 7 0.6168 0.6168
Richard Beeghley 11 7 6 11 7 14 10 0.6667 7 0.6168 0.6168
Brian Hollmann NA NA NA 8 8 10 10 0.6667 4 0.6102 0.3487
Antonio Mitchell 11 7 8 9 9 11 10 0.6667 7 0.6075 0.6075
Nicole Dike 13 7 8 10 7 10 10 0.6667 7 0.6075 0.6075
Jonathon Leslein 10 8 7 10 8 12 10 0.6667 7 0.6075 0.6075
Ryan Baum 14 4 9 10 9 NA 10 0.6667 6 0.6022 0.5162
Jeffrey Rudderforth 11 11 10 9 6 7 10 0.6667 7 0.5981 0.5981
Daniel Baller 14 6 9 8 7 9 10 0.6667 7 0.5888 0.5888
George Brown 14 7 8 7 6 11 10 0.6667 7 0.5888 0.5888
Melissa Printup 8 9 9 6 10 10 10 0.6667 7 0.5794 0.5794
Rachel Follo 15 8 6 6 9 7 10 0.6667 7 0.5701 0.5701
Noah Gosswiller 8 7 NA 10 8 NA 10 0.6667 5 0.5584 0.3989
Zechariah Ziebarth 8 8 8 10 5 10 10 0.6667 7 0.5514 0.5514
Terry Hardison 13 8 6 7 4 11 10 0.6667 7 0.5514 0.5514
Thomas Brenstuhl 9 8 NA 6 7 9 10 0.6667 6 0.5385 0.4616
Edward Ford 9 7 6 10 5 10 10 0.6667 7 0.5327 0.5327
Pamela Augustine 14 9 9 NA 7 11 9 0.6000 6 0.6484 0.5558
James Small 12 NA 9 10 8 10 9 0.6000 6 0.6374 0.5463
Anthony Brinson 11 7 NA 9 10 11 9 0.6000 6 0.6264 0.5369
Matthew Schultz 13 10 9 8 9 9 9 0.6000 7 0.6262 0.6262
Gregory Brown 15 7 6 9 8 12 9 0.6000 7 0.6168 0.6168
Kristen White 14 7 9 9 8 9 9 0.6000 7 0.6075 0.6075
Daniel Halse 12 6 8 10 7 13 9 0.6000 7 0.6075 0.6075
Darryle Sellers 11 11 6 8 9 11 9 0.6000 7 0.6075 0.6075
Jason Schattel 13 7 6 9 10 11 9 0.6000 7 0.6075 0.6075
Amy Asberry 11 8 6 10 NA 12 9 0.6000 6 0.6022 0.5162
Keisha Vasquez 8 7 9 9 11 11 9 0.6000 7 0.5981 0.5981
Diance Durand 9 9 12 7 8 10 9 0.6000 7 0.5981 0.5981
Jared Kaanga 11 9 9 8 7 10 9 0.6000 7 0.5888 0.5888
Trevor Macgavin 12 7 10 8 8 8 9 0.6000 7 0.5794 0.5794
Michael Branson 9 8 8 9 8 11 9 0.6000 7 0.5794 0.5794
Darvin Graham 12 7 6 9 8 11 9 0.6000 7 0.5794 0.5794
Jeffrey Zornes 9 11 6 8 7 10 9 0.6000 7 0.5607 0.5607
Kamar Morgan 12 6 8 5 8 12 9 0.6000 7 0.5607 0.5607
Joseph Martin 10 7 8 8 8 10 9 0.6000 7 0.5607 0.5607
Robert Sokol 10 8 NA NA 6 9 9 0.6000 5 0.5600 0.4000
Christopher Mulcahy 11 9 7 8 NA 8 9 0.6000 6 0.5591 0.4792
Bunnaro Sun 12 5 8 11 6 8 9 0.6000 7 0.5514 0.5514
Brian Patterson 11 6 9 9 6 NA 9 0.6000 6 0.5376 0.4608
Jason Jackson 12 7 5 6 5 12 9 0.6000 7 0.5234 0.5234
Ashlyn Dortch 9 NA NA 8 NA 5 9 0.6000 4 0.5082 0.2904
Joshua Tracey 12 5 8 6 7 NA 9 0.6000 6 0.5054 0.4332
Jack Wheeler 9 6 5 10 8 NA 9 0.6000 6 0.5054 0.4332
Gary Lawrence 10 6 5 5 7 9 9 0.6000 7 0.4766 0.4766
Michael Moss 13 8 8 8 10 13 8 0.5333 7 0.6355 0.6355
Paul Presti 12 8 9 12 7 11 8 0.5333 7 0.6262 0.6262
Wayne Gokey 13 7 NA 11 NA NA 8 0.5333 4 0.6190 0.3537
Derrick Elam 13 9 8 11 7 10 8 0.5333 7 0.6168 0.6168
David Hadley 13 10 8 NA 8 NA 8 0.5333 5 0.6104 0.4360
Nahir Shepard 11 8 10 8 6 12 8 0.5333 7 0.5888 0.5888
Jason Miranda 10 7 8 NA 9 11 8 0.5333 6 0.5824 0.4992
Megan Fitzgerald 8 11 9 10 NA NA 8 0.5333 5 0.5823 0.4159
Karen Richardson 10 9 7 9 11 8 8 0.5333 7 0.5794 0.5794
Jennifer Arty 10 7 9 7 7 12 8 0.5333 7 0.5607 0.5607
Desmond Jenkins 10 7 7 NA 7 12 8 0.5333 6 0.5604 0.4803
Jose Torres Mendoza 12 8 8 8 NA NA 8 0.5333 5 0.5570 0.3979
Louie Renew 9 8 12 4 10 8 8 0.5333 7 0.5514 0.5514
Gabriel Quinones 10 7 6 9 NA 11 8 0.5333 6 0.5484 0.4701
Anthony Rockemore 13 8 6 8 7 NA 8 0.5333 6 0.5376 0.4608
Jonathan Smith 11 NA 4 10 7 NA 8 0.5333 5 0.5195 0.3711
Marcus Evans 11 8 NA 8 7 10 7 0.4667 6 0.5604 0.4803
Sheryl Claiborne-Smith 11 7 NA NA NA 7 7 0.4667 4 0.5246 0.2998
Robert Martin 7 NA 9 8 8 8 7 0.4667 6 0.5165 0.4427
Jay Kelly 10 9 7 7 5 10 7 0.4667 7 0.5140 0.5140
Robert Lynch 6 9 8 6 9 7 7 0.4667 7 0.4860 0.4860
Andrew Gray 5 8 9 7 NA NA 7 0.4667 5 0.4557 0.3255
Clayton Grimes 14 NA NA NA NA NA NA 0.0000 1 0.8750 0.1250
Tanaysa Henderson NA NA NA NA NA 12 NA 0.0000 1 0.8571 0.1224
Wallace Savage 12 NA NA NA NA NA NA 0.0000 1 0.7500 0.1071
Brian Holder 12 NA NA NA NA NA NA 0.0000 1 0.7500 0.1071
Sandra Carter 12 NA NA NA NA NA NA 0.0000 1 0.7500 0.1071
Jeremy Krammes 12 NA NA NA NA NA NA 0.0000 1 0.7500 0.1071
Terrence Lee 11 NA NA NA NA NA NA 0.0000 1 0.6875 0.0982
Daniel Gray 11 NA NA NA NA NA NA 0.0000 1 0.6875 0.0982
Heather Kohler 12 NA 7 12 9 11 NA 0.0000 5 0.6711 0.4794
Jeremy Mounce 12 8 8 NA 10 12 NA 0.0000 5 0.6579 0.4699
Jordan Forwood 11 8 6 11 NA 13 NA 0.0000 5 0.6282 0.4487
George Hall 12 NA 8 NA NA NA NA 0.0000 2 0.6250 0.1786
Kevin Green 11 9 NA 8 7 12 NA 0.0000 5 0.6184 0.4417
Patrick Tynan 12 8 7 9 8 12 NA 0.0000 6 0.6087 0.5217
Thomas Cho 10 6 NA 11 7 12 NA 0.0000 5 0.6053 0.4324
Brandon Parks 12 6 9 9 6 13 NA 0.0000 6 0.5978 0.5124
Jeffrey Dusza 11 8 NA NA NA NA NA 0.0000 2 0.5938 0.1697
Cherylynn Vidal 13 9 8 8 NA NA NA 0.0000 4 0.5938 0.3393
Adam Konkle 10 9 NA NA NA NA NA 0.0000 2 0.5938 0.1697
Daniel Major 8 10 11 6 8 11 NA 0.0000 6 0.5870 0.5031
Cheryl Brown 11 6 9 8 8 10 NA 0.0000 6 0.5652 0.4845
Tara Bridgett 11 8 8 8 NA 9 NA 0.0000 5 0.5641 0.4029
Steward Hogans 10 7 10 NA NA NA NA 0.0000 3 0.5625 0.2411
Michael Moore 11 6 7 7 8 12 NA 0.0000 6 0.5543 0.4751
David Plate 10 8 8 8 9 NA NA 0.0000 5 0.5513 0.3938
Lawrence Thuotte 9 5 12 NA 8 NA NA 0.0000 4 0.5484 0.3134
Donald Park 9 NA 6 NA NA 10 NA 0.0000 3 0.5435 0.2329
Min Choi 10 NA 7 NA 8 7 NA 0.0000 4 0.5333 0.3047
Monte Henderson 9 8 NA NA NA NA NA 0.0000 2 0.5312 0.1518
David Kim 9 8 NA NA NA NA NA 0.0000 2 0.5312 0.1518
Jamie Ainsleigh-Wong 9 8 9 9 8 5 NA 0.0000 6 0.5217 0.4472
Zachary Brosemer 8 NA NA NA NA NA NA 0.0000 1 0.5000 0.0714
Antonio Chapa 8 NA NA NA NA NA NA 0.0000 1 0.5000 0.0714
Vincent Kandian 9 8 8 7 NA NA NA 0.0000 4 0.5000 0.2857
Steven Webster 7 7 9 6 7 9 NA 0.0000 6 0.4891 0.4192
Gabrieal Feiling 10 NA 5 NA NA NA NA 0.0000 2 0.4688 0.1339
Ashley Johnson 9 NA 6 NA 6 NA NA 0.0000 3 0.4565 0.1956
Jasprin Smith 6 NA NA NA NA NA NA 0.0000 1 0.3750 0.0536
Robert Epps NA 6 NA NA NA NA NA 0.0000 1 0.3750 0.0536

Season Leaderboard

Season Leaderboard (Season Percent)
Week 7
Season Rank Name Donuts Won Weeks Picked Season Percent Adj Season Percent Season Trend
1 Clayton Grimes 0 1 0.8750 0.1250
2 Tanaysa Henderson 0 1 0.8571 0.1224
3 Brittany Pillar 0 2 0.7586 0.2167
4 Brian Holder 0 1 0.7500 0.1071
4 Jeremy Krammes 0 1 0.7500 0.1071
4 Sandra Carter 0 1 0.7500 0.1071
4 Wallace Savage 0 1 0.7500 0.1071
8 Steven Maisonneuve 1 3 0.7442 0.3189
9 Matthew Blair 0 2 0.7241 0.2069
10 Robert Cunningham 0 7 0.7103 0.7103
11 Chris Papageorge 0 7 0.7009 0.7009
12 Bruce Williams 0 7 0.6916 0.6916
12 Robert Gelo 1 7 0.6916 0.6916
14 Daniel Gray 0 1 0.6875 0.0982
14 Terrence Lee 0 1 0.6875 0.0982
16 Keven Talbert 2 7 0.6822 0.6822
17 Anthony Bloss 0 7 0.6729 0.6729
17 Chester Todd 1 7 0.6729 0.6729
17 Kevin Kehoe 0 7 0.6729 0.6729
17 Marc Agne 1 7 0.6729 0.6729
21 Heather Kohler 0 5 0.6711 0.4794
22 Aubrey Conn 0 7 0.6636 0.6636
22 Shaun Dahl 0 7 0.6636 0.6636
22 William Schouviller 1 7 0.6636 0.6636
25 Michael Linder 0 5 0.6623 0.4731
26 Jeremy Mounce 0 5 0.6579 0.4699
27 Randolph Tidd 0 6 0.6559 0.5622
28 Michael Pacifico 0 7 0.6542 0.6542
28 Travis Delagardelle 1 7 0.6542 0.6542
30 Pamela Augustine 0 6 0.6484 0.5558
31 Nathan Brown 0 6 0.6452 0.5530
32 Bradley Hobson 0 7 0.6449 0.6449
32 David Dupree 0 7 0.6449 0.6449
32 George Sweet 1 7 0.6449 0.6449
32 Ryan Cvik 0 7 0.6449 0.6449
36 Nicholas Cinco 0 5 0.6400 0.4571
37 James Small 0 6 0.6374 0.5463
37 Karen Coleman 0 6 0.6374 0.5463
37 Paul Seitz 0 6 0.6374 0.5463
40 Erik Neumann 0 7 0.6355 0.6355
40 Michael Moss 0 7 0.6355 0.6355
40 Shawn Carden 0 7 0.6355 0.6355
43 Jordan Forwood 0 5 0.6282 0.4487
44 Clevante Granville 0 5 0.6267 0.4476
45 Anthony Brinson 0 6 0.6264 0.5369
46 Christopher Sims 0 7 0.6262 0.6262
46 Jennifer Bouland 0 7 0.6262 0.6262
46 Jeremy Stieler 0 7 0.6262 0.6262
46 Matthew Schultz 0 7 0.6262 0.6262
46 Michelle Fraterrigo 0 7 0.6262 0.6262
46 Paul Presti 0 7 0.6262 0.6262
46 Randy Dick 1 7 0.6262 0.6262
53 George Hall 0 2 0.6250 0.1786
54 Philip Driskill 1 6 0.6237 0.5346
55 Wayne Gokey 0 4 0.6190 0.3537
56 Kevin Green 0 5 0.6184 0.4417
57 Derrick Elam 0 7 0.6168 0.6168
57 Gregory Brown 1 7 0.6168 0.6168
57 Heather Ellenberger 0 7 0.6168 0.6168
57 Kevin Buettner 0 7 0.6168 0.6168
57 Matthew Olguin 0 7 0.6168 0.6168
57 Rafael Torres 0 7 0.6168 0.6168
57 Ramar Williams 0 7 0.6168 0.6168
57 Richard Beeghley 1 7 0.6168 0.6168
65 Akilah Gamble 1 6 0.6154 0.5275
65 Bryson Scott 0 6 0.6154 0.5275
65 Kenneth Nielsen 0 6 0.6154 0.5275
68 David Hadley 0 5 0.6104 0.4360
69 Brian Hollmann 0 4 0.6102 0.3487
70 Patrick Tynan 0 6 0.6087 0.5217
71 Antonio Mitchell 0 7 0.6075 0.6075
71 Brayant Rivera 0 7 0.6075 0.6075
71 Daniel Halse 0 7 0.6075 0.6075
71 Darryle Sellers 0 7 0.6075 0.6075
71 Jason Schattel 0 7 0.6075 0.6075
71 Jonathon Leslein 0 7 0.6075 0.6075
71 Kristen White 0 7 0.6075 0.6075
71 Nicole Dike 0 7 0.6075 0.6075
71 Stephen Bush 1 7 0.6075 0.6075
80 Thomas Cho 0 5 0.6053 0.4324
81 Amy Asberry 0 6 0.6022 0.5162
81 Jonathan Knight 0 6 0.6022 0.5162
81 Ryan Baum 0 6 0.6022 0.5162
84 Diance Durand 1 7 0.5981 0.5981
84 Jeffrey Rudderforth 0 7 0.5981 0.5981
84 Keisha Vasquez 1 7 0.5981 0.5981
84 Montee Brown 1 7 0.5981 0.5981
88 Brandon Parks 0 6 0.5978 0.5124
89 Adam Konkle 0 2 0.5938 0.1697
89 Cherylynn Vidal 0 4 0.5938 0.3393
89 Jeffrey Dusza 0 2 0.5938 0.1697
92 Daniel Baller 0 7 0.5888 0.5888
92 David Humes 0 7 0.5888 0.5888
92 George Brown 0 7 0.5888 0.5888
92 Jared Kaanga 0 7 0.5888 0.5888
92 Nahir Shepard 0 7 0.5888 0.5888
92 Vincent Scannelli 0 7 0.5888 0.5888
98 Daniel Major 0 6 0.5870 0.5031
99 Jason Miranda 0 6 0.5824 0.4992
100 Megan Fitzgerald 0 5 0.5823 0.4159
101 Earl Dixon 0 6 0.5806 0.4977
101 Jennifer Wilson 0 6 0.5806 0.4977
103 Darvin Graham 0 7 0.5794 0.5794
103 Karen Richardson 1 7 0.5794 0.5794
103 Melissa Printup 0 7 0.5794 0.5794
103 Michael Branson 0 7 0.5794 0.5794
103 Nicholas Nguyen 0 7 0.5794 0.5794
103 Pablo Burgosramos 1 7 0.5794 0.5794
103 Scott Lefton 0 7 0.5794 0.5794
103 Thomas Mccoy 0 7 0.5794 0.5794
103 Trevor Macgavin 0 7 0.5794 0.5794
112 Yiming Hu 0 6 0.5714 0.4898
113 Cade Martinez 0 7 0.5701 0.5701
113 Rachel Follo 1 7 0.5701 0.5701
113 Walter Archambo 0 7 0.5701 0.5701
116 Cheryl Brown 0 6 0.5652 0.4845
117 Tara Bridgett 0 5 0.5641 0.4029
118 Steward Hogans 0 3 0.5625 0.2411
119 Jeffrey Zornes 0 7 0.5607 0.5607
119 Jennifer Arty 0 7 0.5607 0.5607
119 Joseph Martin 0 7 0.5607 0.5607
119 Kamar Morgan 0 7 0.5607 0.5607
119 Ronald Schmidt 0 7 0.5607 0.5607
119 Ryan Shipley 0 7 0.5607 0.5607
125 Desmond Jenkins 0 6 0.5604 0.4803
125 George Mancini 0 6 0.5604 0.4803
125 Marcus Evans 0 6 0.5604 0.4803
128 Robert Sokol 0 5 0.5600 0.4000
129 Christopher Mulcahy 0 6 0.5591 0.4792
130 Noah Gosswiller 0 5 0.5584 0.3989
131 Jose Torres Mendoza 0 5 0.5570 0.3979
132 Michael Moore 0 6 0.5543 0.4751
133 Bunnaro Sun 0 7 0.5514 0.5514
133 Louie Renew 1 7 0.5514 0.5514
133 Terry Hardison 0 7 0.5514 0.5514
133 Zechariah Ziebarth 0 7 0.5514 0.5514
137 David Plate 0 5 0.5513 0.3938
138 Gabriel Quinones 0 6 0.5484 0.4701
138 Lawrence Thuotte 1 4 0.5484 0.3134
140 Donald Park 0 3 0.5435 0.2329
141 Thomas Brenstuhl 0 6 0.5385 0.4616
142 Anthony Rockemore 0 6 0.5376 0.4608
142 Brian Patterson 0 6 0.5376 0.4608
144 Min Choi 0 4 0.5333 0.3047
145 Edward Ford 0 7 0.5327 0.5327
146 David Kim 0 2 0.5312 0.1518
146 Monte Henderson 0 2 0.5312 0.1518
148 Kyle May 0 6 0.5269 0.4516
149 Sheryl Claiborne-Smith 0 4 0.5246 0.2998
150 Jason Jackson 0 7 0.5234 0.5234
150 Richard Conkle 0 7 0.5234 0.5234
152 Jamie Ainsleigh-Wong 0 6 0.5217 0.4472
153 Jonathan Smith 0 5 0.5195 0.3711
154 Robert Martin 0 6 0.5165 0.4427
155 Jay Kelly 0 7 0.5140 0.5140
156 Ashlyn Dortch 0 4 0.5082 0.2904
157 Jack Wheeler 0 6 0.5054 0.4332
157 Joshua Tracey 0 6 0.5054 0.4332
159 Antonio Chapa 0 1 0.5000 0.0714
159 Vincent Kandian 0 4 0.5000 0.2857
159 Zachary Brosemer 0 1 0.5000 0.0714
162 Steven Webster 0 6 0.4891 0.4192
163 Robert Lynch 0 7 0.4860 0.4860
164 Gary Lawrence 0 7 0.4766 0.4766
164 Wayne Schofield 0 7 0.4766 0.4766
166 Gabrieal Feiling 0 2 0.4688 0.1339
167 Ashley Johnson 0 3 0.4565 0.1956
168 Andrew Gray 0 5 0.4557 0.3255
169 Jasprin Smith 0 1 0.3750 0.0536
169 Robert Epps 0 1 0.3750 0.0536

Adjusted Season Leaderboard

Season Leaderboard (Adjusted Season Percent)
Week 7
Season Rank Name Donuts Won Weeks Picked Season Percent Adj Season Percent Season Trend
1 Robert Cunningham 0 7 0.7103 0.7103
2 Chris Papageorge 0 7 0.7009 0.7009
3 Bruce Williams 0 7 0.6916 0.6916
3 Robert Gelo 1 7 0.6916 0.6916
5 Keven Talbert 2 7 0.6822 0.6822
6 Anthony Bloss 0 7 0.6729 0.6729
6 Chester Todd 1 7 0.6729 0.6729
6 Kevin Kehoe 0 7 0.6729 0.6729
6 Marc Agne 1 7 0.6729 0.6729
10 Aubrey Conn 0 7 0.6636 0.6636
10 Shaun Dahl 0 7 0.6636 0.6636
10 William Schouviller 1 7 0.6636 0.6636
13 Michael Pacifico 0 7 0.6542 0.6542
13 Travis Delagardelle 1 7 0.6542 0.6542
15 Bradley Hobson 0 7 0.6449 0.6449
15 David Dupree 0 7 0.6449 0.6449
15 George Sweet 1 7 0.6449 0.6449
15 Ryan Cvik 0 7 0.6449 0.6449
19 Erik Neumann 0 7 0.6355 0.6355
19 Michael Moss 0 7 0.6355 0.6355
19 Shawn Carden 0 7 0.6355 0.6355
22 Christopher Sims 0 7 0.6262 0.6262
22 Jennifer Bouland 0 7 0.6262 0.6262
22 Jeremy Stieler 0 7 0.6262 0.6262
22 Matthew Schultz 0 7 0.6262 0.6262
22 Michelle Fraterrigo 0 7 0.6262 0.6262
22 Paul Presti 0 7 0.6262 0.6262
22 Randy Dick 1 7 0.6262 0.6262
29 Derrick Elam 0 7 0.6168 0.6168
29 Gregory Brown 1 7 0.6168 0.6168
29 Heather Ellenberger 0 7 0.6168 0.6168
29 Kevin Buettner 0 7 0.6168 0.6168
29 Matthew Olguin 0 7 0.6168 0.6168
29 Rafael Torres 0 7 0.6168 0.6168
29 Ramar Williams 0 7 0.6168 0.6168
29 Richard Beeghley 1 7 0.6168 0.6168
37 Antonio Mitchell 0 7 0.6075 0.6075
37 Brayant Rivera 0 7 0.6075 0.6075
37 Daniel Halse 0 7 0.6075 0.6075
37 Darryle Sellers 0 7 0.6075 0.6075
37 Jason Schattel 0 7 0.6075 0.6075
37 Jonathon Leslein 0 7 0.6075 0.6075
37 Kristen White 0 7 0.6075 0.6075
37 Nicole Dike 0 7 0.6075 0.6075
37 Stephen Bush 1 7 0.6075 0.6075
46 Diance Durand 1 7 0.5981 0.5981
46 Jeffrey Rudderforth 0 7 0.5981 0.5981
46 Keisha Vasquez 1 7 0.5981 0.5981
46 Montee Brown 1 7 0.5981 0.5981
50 Daniel Baller 0 7 0.5888 0.5888
50 David Humes 0 7 0.5888 0.5888
50 George Brown 0 7 0.5888 0.5888
50 Jared Kaanga 0 7 0.5888 0.5888
50 Nahir Shepard 0 7 0.5888 0.5888
50 Vincent Scannelli 0 7 0.5888 0.5888
56 Darvin Graham 0 7 0.5794 0.5794
56 Karen Richardson 1 7 0.5794 0.5794
56 Melissa Printup 0 7 0.5794 0.5794
56 Michael Branson 0 7 0.5794 0.5794
56 Nicholas Nguyen 0 7 0.5794 0.5794
56 Pablo Burgosramos 1 7 0.5794 0.5794
56 Scott Lefton 0 7 0.5794 0.5794
56 Thomas Mccoy 0 7 0.5794 0.5794
56 Trevor Macgavin 0 7 0.5794 0.5794
65 Cade Martinez 0 7 0.5701 0.5701
65 Rachel Follo 1 7 0.5701 0.5701
65 Walter Archambo 0 7 0.5701 0.5701
68 Randolph Tidd 0 6 0.6559 0.5622
69 Jeffrey Zornes 0 7 0.5607 0.5607
69 Jennifer Arty 0 7 0.5607 0.5607
69 Joseph Martin 0 7 0.5607 0.5607
69 Kamar Morgan 0 7 0.5607 0.5607
69 Ronald Schmidt 0 7 0.5607 0.5607
69 Ryan Shipley 0 7 0.5607 0.5607
75 Pamela Augustine 0 6 0.6484 0.5558
76 Nathan Brown 0 6 0.6452 0.5530
77 Bunnaro Sun 0 7 0.5514 0.5514
77 Louie Renew 1 7 0.5514 0.5514
77 Terry Hardison 0 7 0.5514 0.5514
77 Zechariah Ziebarth 0 7 0.5514 0.5514
81 James Small 0 6 0.6374 0.5463
81 Karen Coleman 0 6 0.6374 0.5463
81 Paul Seitz 0 6 0.6374 0.5463
84 Anthony Brinson 0 6 0.6264 0.5369
85 Philip Driskill 1 6 0.6237 0.5346
86 Edward Ford 0 7 0.5327 0.5327
87 Akilah Gamble 1 6 0.6154 0.5275
87 Bryson Scott 0 6 0.6154 0.5275
87 Kenneth Nielsen 0 6 0.6154 0.5275
90 Jason Jackson 0 7 0.5234 0.5234
90 Richard Conkle 0 7 0.5234 0.5234
92 Patrick Tynan 0 6 0.6087 0.5217
93 Amy Asberry 0 6 0.6022 0.5162
93 Jonathan Knight 0 6 0.6022 0.5162
93 Ryan Baum 0 6 0.6022 0.5162
96 Jay Kelly 0 7 0.5140 0.5140
97 Brandon Parks 0 6 0.5978 0.5124
98 Daniel Major 0 6 0.5870 0.5031
99 Jason Miranda 0 6 0.5824 0.4992
100 Earl Dixon 0 6 0.5806 0.4977
100 Jennifer Wilson 0 6 0.5806 0.4977
102 Yiming Hu 0 6 0.5714 0.4898
103 Robert Lynch 0 7 0.4860 0.4860
104 Cheryl Brown 0 6 0.5652 0.4845
105 Desmond Jenkins 0 6 0.5604 0.4803
105 George Mancini 0 6 0.5604 0.4803
105 Marcus Evans 0 6 0.5604 0.4803
108 Heather Kohler 0 5 0.6711 0.4794
109 Christopher Mulcahy 0 6 0.5591 0.4792
110 Gary Lawrence 0 7 0.4766 0.4766
110 Wayne Schofield 0 7 0.4766 0.4766
112 Michael Moore 0 6 0.5543 0.4751
113 Michael Linder 0 5 0.6623 0.4731
114 Gabriel Quinones 0 6 0.5484 0.4701
115 Jeremy Mounce 0 5 0.6579 0.4699
116 Thomas Brenstuhl 0 6 0.5385 0.4616
117 Anthony Rockemore 0 6 0.5376 0.4608
117 Brian Patterson 0 6 0.5376 0.4608
119 Nicholas Cinco 0 5 0.6400 0.4571
120 Kyle May 0 6 0.5269 0.4516
121 Jordan Forwood 0 5 0.6282 0.4487
122 Clevante Granville 0 5 0.6267 0.4476
123 Jamie Ainsleigh-Wong 0 6 0.5217 0.4472
124 Robert Martin 0 6 0.5165 0.4427
125 Kevin Green 0 5 0.6184 0.4417
126 David Hadley 0 5 0.6104 0.4360
127 Jack Wheeler 0 6 0.5054 0.4332
127 Joshua Tracey 0 6 0.5054 0.4332
129 Thomas Cho 0 5 0.6053 0.4324
130 Steven Webster 0 6 0.4891 0.4192
131 Megan Fitzgerald 0 5 0.5823 0.4159
132 Tara Bridgett 0 5 0.5641 0.4029
133 Robert Sokol 0 5 0.5600 0.4000
134 Noah Gosswiller 0 5 0.5584 0.3989
135 Jose Torres Mendoza 0 5 0.5570 0.3979
136 David Plate 0 5 0.5513 0.3938
137 Jonathan Smith 0 5 0.5195 0.3711
138 Wayne Gokey 0 4 0.6190 0.3537
139 Brian Hollmann 0 4 0.6102 0.3487
140 Cherylynn Vidal 0 4 0.5938 0.3393
141 Andrew Gray 0 5 0.4557 0.3255
142 Steven Maisonneuve 1 3 0.7442 0.3189
143 Lawrence Thuotte 1 4 0.5484 0.3134
144 Min Choi 0 4 0.5333 0.3047
145 Sheryl Claiborne-Smith 0 4 0.5246 0.2998
146 Ashlyn Dortch 0 4 0.5082 0.2904
147 Vincent Kandian 0 4 0.5000 0.2857
148 Steward Hogans 0 3 0.5625 0.2411
149 Donald Park 0 3 0.5435 0.2329
150 Brittany Pillar 0 2 0.7586 0.2167
151 Matthew Blair 0 2 0.7241 0.2069
152 Ashley Johnson 0 3 0.4565 0.1956
153 George Hall 0 2 0.6250 0.1786
154 Adam Konkle 0 2 0.5938 0.1697
154 Jeffrey Dusza 0 2 0.5938 0.1697
156 David Kim 0 2 0.5312 0.1518
156 Monte Henderson 0 2 0.5312 0.1518
158 Gabrieal Feiling 0 2 0.4688 0.1339
159 Clayton Grimes 0 1 0.8750 0.1250
160 Tanaysa Henderson 0 1 0.8571 0.1224
161 Brian Holder 0 1 0.7500 0.1071
161 Jeremy Krammes 0 1 0.7500 0.1071
161 Sandra Carter 0 1 0.7500 0.1071
161 Wallace Savage 0 1 0.7500 0.1071
165 Daniel Gray 0 1 0.6875 0.0982
165 Terrence Lee 0 1 0.6875 0.0982
167 Antonio Chapa 0 1 0.5000 0.0714
167 Zachary Brosemer 0 1 0.5000 0.0714
169 Jasprin Smith 0 1 0.3750 0.0536
169 Robert Epps 0 1 0.3750 0.0536

Data

---
title: "2024 NFL Moneyline Picks"
output: 
  flexdashboard::flex_dashboard:
    theme:
      version: 4
      bootswatch: spacelab
    orientation: rows
    vertical_layout: fill
    social: ["menu"]
    source_code: embed
    navbar:
      - { title: "Created by: Daniel Baller", icon: "fa-github", href: "https://github.com/danielpballer"  }
---


```{r setup, include=FALSE}
#    source_code: embed
library(flexdashboard)
library(tidyverse)
library(data.table)
library(formattable)
library(ggpubr)
library(ggrepel)
library(gt)
library(glue)
library(ggthemes)
library(hrbrthemes)
library(sparkline)
library(plotly)
library(htmlwidgets)
library(mdthemes)
library(ggtext)
library(ggnewscale)
library(DT)
source("./Functions/functions2.R")

thematic::thematic_rmd(font = "auto")

```

```{r Reading in our picks files, include=FALSE}
current_week = 7 #Set what week it is
week_1 = read_csv("./CSV_Data_Files/2024 NFL Week 1.csv") %>% 
  mutate(Name = str_to_title(Name))
week_2 = read_csv("./CSV_Data_Files/2024 NFL Week 2.csv")%>% 
  mutate(Name = str_to_title(Name))
week_3 = read_csv("./CSV_Data_Files/2024 NFL Week 3.csv")%>% 
  mutate(Name = str_to_title(Name))
week_4 = read_csv("./CSV_Data_Files/2024 NFL Week 4.csv")%>%
 mutate(Name = str_to_title(Name))
week_5 = read_csv("./CSV_Data_Files/2024 NFL Week 5.csv")%>% 
  mutate(Name = str_to_title(Name))
week_6 = read_csv("./CSV_Data_Files/2024 NFL Week 6.csv")%>% 
  mutate(Name = str_to_title(Name))
week_7 = read_csv("./CSV_Data_Files/2024 NFL Week 7.csv")%>% 
  mutate(Name = str_to_title(Name))
# week_8 = read_csv("./CSV_Data_Files/2024 NFL Week 8.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_9 = read_csv("./CSV_Data_Files/2024 NFL Week 9.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_10 = read_csv("./CSV_Data_Files/2024 NFL Week 10.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_11 = read_csv("./CSV_Data_Files/2024 NFL Week 11.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_12 = read_csv("./CSV_Data_Files/2024 NFL Week 12.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_13 = read_csv("./CSV_Data_Files/2024 NFL Week 13.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_14 = read_csv("./CSV_Data_Files/2024 NFL Week 14.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_15 = read_csv("./CSV_Data_Files/2024 NFL Week 15.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_16 = read_csv("./CSV_Data_Files/2024 NFL Week 16.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_17 = read_csv("./CSV_Data_Files/2024 NFL Week 17.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_18 = read_csv("./CSV_Data_Files/2024 NFL Week 18.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_19 = read_csv("./CSV_Data_Files/2024 NFL Wild Card.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_20 = read_csv("./CSV_Data_Files/2024 NFL Divisional Round.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_21 = read_csv("./CSV_Data_Files/2024 NFL Conference Round.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_22 = read_csv("./CSV_Data_Files/2024 NFL Super Bowl.csv")%>% 
#  mutate(Name = str_to_title(Name))

#reading in scores
Scores = read_csv(glue::glue("./CSV_Data_Files/NFL_Scores_{current_week}.csv")) 

#reading in CBS Prediction Records
cbs = read_csv(glue::glue("./CSV_Data_Files/CBS_Experts_{current_week}.csv")) %>% 
  mutate(Percent = round(Percent,4))
cbs_season = read_csv(glue::glue("./CSV_Data_Files/CBS_Experts_Season_{current_week}.csv"))

#reading in ESPN Prediction Records
espn = read_csv(glue::glue("./CSV_Data_Files/ESPN_Experts_{current_week}.csv"))%>% 
  mutate(Percent = round(Percent,4))
espn_season = read_csv(glue::glue("./CSV_Data_Files/ESPN_Experts_Season_{current_week}.csv"))%>% 
  mutate(Percent = round(Percent,4))

#Odds not working for the 2024 season.  Need to fix scrape code for next year.
#Reading in the moneyline odds for each team and cleaning the team names
# odds_wk1 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_1.csv"))
# odds_wk2 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_2.csv"))
# odds_wk3 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_3.csv"))
# odds_wk4 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_4.csv"))
# odds_wk5 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_5.csv"))
# odds_wk6 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_6.csv"))
# odds_wk7 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_7.csv"))
# odds_wk8 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_8.csv"))
# odds_wk9 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_9.csv"))
# odds_wk10 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_10.csv"))
# odds_wk11 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_11.csv"))
# odds_wk12 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_12.csv"))
# odds_wk13 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_13.csv"))
# odds_wk14 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_14.csv"))
# odds_wk15 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_15.csv"))
# odds_wk16 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_16.csv"))
# odds_wk17 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_17.csv"))
# odds_wk18 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_18.csv"))
# odds_wk19 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_19.csv"))
# odds_wk20 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_20.csv"))
# odds_wk21 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_21.csv"))
# odds_wk22 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_22.csv"))

####################UPDATE THESE###############################
inst.picks = list(week_1, week_2, week_3, week_4, week_5, week_6, week_7) #, week_8, week_9, week_10, week_11, week_12, week_13, week_14, week_15, week_16, week_17 , week_18, week_19 , week_20, week_21, week_22) #add in the additional weeks
# odds = rbind(odds_wk1, odds_wk2, odds_wk3, odds_wk4, odds_wk5, odds_wk6, odds_wk7, odds_wk8,
#              odds_wk9, odds_wk10, odds_wk11, odds_wk12) #add in the additional weeks
####################END OF UPDATE##############################

weeks = as.list(seq(1:current_week)) #creating a list of each week number
```

```{r read in scores clean data, include=FALSE}
#Cleaning Odds Data
# cl_odds = odds_cleaning(odds)

#Cleaning scores data
Scores = cleaning2(Scores)

#creating a list of winners for each week
winners = map(weeks, weekly_winners)

#creating a vector of this weeks winners
this_week = pull(winners[[length(winners)]])  

#Getting the number of games for each week
weekly_number_of_games = map_dbl(weeks, week_number_games)
```

```{r Group Predictions, include=FALSE}
#Creating the list of everyones predictions each week.
games = map(inst.picks, games_fn)

#Creating the prediction table.  
pred_table = map(games, pred_table_fn)

#Adding who won to the predictions
with_winners = map2(pred_table, winners, adding_winners)

#Creating results for each week.
results = map2(with_winners,weekly_number_of_games, results_fn)
```


```{r Displaying Group Results, echo=FALSE}
#Displaying the group results

inst_group_table = results[[length(results)]] %>% gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("This Week's Predictions"),
    #subtitle = md(glue("Week {length(results)}"))
    ) %>% 
   tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(Correct),
      rows = Correct =="No"
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(Correct),
      rows = Correct =="Yes"
    )) %>% 
  tab_options(
    data_row.padding = px(3),
    container.height = "100%"
   )
```

```{r Weekly and season Group Results, include=FALSE}
# Printing the weekly and season win percentage     

#how many games correct, incorrect, and not picked each week
weekly_group_correct = map(results, weekly_group_correct_fn)  

#how many games were picked each week
weekly_games_picked = map2(weekly_group_correct, weekly_number_of_games, weekly_games_picked_fn)

#Calculating the number of correct picks for each week
weekly_group_correct_picks = map(weekly_group_correct, weekly_group_correct_picks_fn)

# Code to manually hard code in week where we get 0 games correct
# ##### Remove this line before next season 
# weekly_group_correct_picks[[21]]=0

#Calculating weekly win percentage
weekly_win_percentage = map2(weekly_group_correct_picks, weekly_games_picked, weekly_win_percentage_fn)

#Calculating season win percentage
season_win_percentage = round(sum(unlist(weekly_group_correct_picks))/sum(unlist(weekly_games_picked)),4)

#Calculating number of games picked this season
season_games = sum(unlist(weekly_games_picked))

#calculating season wins
season_wins = sum(unlist(weekly_group_correct_picks))

#calculating the number of people who picked this week
Total = dim(inst.picks[[length(weeks)]])[1]
```

```{r plotting group results, include=FALSE}
#Previous Weeks
group_season_for_plotting = unlist(weekly_win_percentage) %>% as.data.frame() %>% 
  rename(`Win Percentage` = ".") %>% 
  add_column(Week = unlist(weeks))
```

```{r Plotting the group results, echo=FALSE}
inst_group_season_plot = group_season_for_plotting %>% 
ggplot(aes(x = as.factor(Week), y = `Win Percentage`))+
  geom_point()+
  geom_path(aes(x = Week))+
  ylim(c(0, 1)) +
  xlab("NFL Week") + 
  ylab("Correct Percentage")+
  ggtitle("Weekly Group Correct Percentage")+
  theme_classic()+
  theme(plot.title = element_text(hjust = 0.5, size = 18))
```

```{r beating cbs week, include=FALSE}
#Creating a list of correct percentages for each week.
cbs_weekly_percent = map(weeks, cbs_percent)

#Creating a list of how many cbs experts we beat each week.
cbs_experts_beat = map2(cbs_weekly_percent, weekly_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
cbs_experts_total = map(cbs_weekly_percent, experts_tot)
```

```{r beating cbs season, include=FALSE}
#Creating a list of correct percentages for each week.
cbs_season_percent = map(weeks, cbs_season_percent)

#Creating a list of how many cbs experts we beat each week.
cbs_experts_beat_season = map2(cbs_season_percent, season_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
cbs_experts_season_total = map(cbs_season_percent, experts_tot)
```

```{r beating ESPN week, include=FALSE}
#Creating a list of correct percentages for each week.
espn_weekly_percent = map(weeks, espn_percent)

#Creating a list of how many cbs experts we beat each week.
espn_experts_beat = map2(espn_weekly_percent, weekly_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
espn_experts_total = map(espn_weekly_percent, experts_tot)
```

```{r beating ESPN season, include=FALSE}
#Creating a list of correct percentages for each week.
espn_season_percent = map(weeks, espn_season_percent)

#Creating a list of how many cbs experts we beat each week.
espn_experts_beat_season = map2(espn_season_percent, season_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
espn_experts_season_total = map(espn_season_percent, experts_tot)
```

```{r individual results, include=FALSE}
#Creating a list of individual results for each week.
weekly_indiv = pmap(list(inst.picks, winners, weeks), indiv_weekly_pred)

#Combining each week into one dataframe and calculating percentage Correct for this week.  
full_season = weekly_indiv %>% reduce(full_join, by = "Name") %>% 
  mutate(Percent = round(pull(.[,ncol(.)]/weekly_number_of_games[[length(weekly_number_of_games)]]),4)) 

#Creating a dataframe with only the weekly picks
a = full_season %>% select(starts_with("Week"))

#Creating a vector of how many weeks each person picked over the season
tot_week = NULL
help = NULL
for (i in 1:dim(a)[1]){
  for(j in 1:length(a)){
    help[j] = ifelse(is.na(a[i,j])==T,0,1)
    tot_week[i] = sum(help)
  }
}

#Creating a vector of how many games each person picked over the season
tot_picks= NULL
help = NULL
for (i in 1:dim(a)[1]){
  for(j in 1:length(a)){
    help[j] = unlist(weekly_games_picked)[j]*ifelse(is.na(a[i,j])==T,0,1)
    tot_picks[i] = sum(help)
  }
}

#Creatign a vector of how many games each person picked correct over the season
tot_correct = NULL
help = NULL
for (i in 1:dim(a)[1]){
  tot_correct[i] = sum(a[i,], na.rm = T)
}

#adding how many weeks each person picked, season correct percentage, and adjusted season percentag to the data frame and sorting the data
indiv_disp = full_season %>% add_column(`Weeks Picked` = tot_week) %>%
  add_column(tot_correct)%>%
  add_column(tot_picks)%>%
  mutate(`Season Percent` = round(tot_correct/tot_picks,4))%>%
  mutate(`Adj Season Percent` = round(`Season Percent`*(tot_week/length(a)),4)) %>%
  select(-tot_correct, -tot_picks) %>%
  arrange(desc(Percent), desc(`Season Percent`)) %>%
  mutate(Percent = ifelse(is.na(Percent)==T, 0, Percent))
```


```{r individual percentages, include=FALSE}
#Calculating individual percentages for each week.
weekly_indiv_percent = map2(weekly_indiv, as.list(weekly_number_of_games), indiv_percent) %>% reduce(full_join, by = "Name")

weekly_indiv_percent_plot = weekly_indiv_percent %>% 
  pivot_longer(cols = starts_with("Week"), names_to = "Week", values_to = "Percent")%>%
  mutate(Percent = ifelse(is.na(Percent)==T, 0, Percent)) %>% 
  mutate(Week = as.factor(Week))

levels = NULL
for(i in 1:length(weeks)){
  levels[i] = glue("Week {i}")  
}

weekly_indiv_percent_plot = weekly_indiv_percent_plot %>%
  mutate(Week = factor(Week, levels))
```

```{r sparklines, include=FALSE}
#adding sparklines
plot_group = function(name, df){
  plot_object = 
    ggplot(data = df,
           aes(x = as.factor(Week), y=Percent, group = 1))+
    geom_path(size = 7)+
    scale_y_continuous(limits = c(0,1))+
    theme_void()+
    theme(legend.position = "none")
  return(plot_object)
}

sparklines = 
  weekly_indiv_percent_plot %>% 
  group_by(Name) %>% 
  nest() %>% 
  mutate(plot = map2(Name, data, plot_group)) %>% 
  select(-data)
  
indiv_disp_2 = indiv_disp %>% 
  inner_join(sparklines, by = "Name") %>% 
  mutate(`Season Trend` = NA)
```

```{r Printing Individual Table2, echo=FALSE}
# Printing the individual Table
indiv_table = indiv_disp_2 %>% gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Individual Results"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
   tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(Percent),
      rows = Percent<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(Percent),
      rows = Percent>.5
    )) %>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(indiv_disp_2$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(c(plot))

indiv_winners = indiv_disp_2 %>% filter(Percent == max(Percent)) %>% select(Name) %>% pull() %>% paste(collapse = ", ")
indiv_season = indiv_disp_2 %>% filter(`Season Percent` == max(`Season Percent`)) %>% select(Name) %>% pull() %>% paste(collapse = ", ")
indiv_season_adj = indiv_disp_2 %>% filter(`Adj Season Percent` == max(`Adj Season Percent`)) %>% select(Name) %>% pull()%>% paste(collapse = ", ")
```

```{r Printing Season Leaderboard, echo=FALSE}
# Printing the Season Leaderboard
  
season_leaderboard_disp = indiv_disp_2 %>% select(Name, starts_with("Week ")) %>% 
  pivot_longer(starts_with("Week"),names_to = "Week", values_to = "Correct") %>% 
  group_by(Week) %>% 
  mutate(Correct = case_when(is.na(Correct)==T~0, 
                             TRUE~Correct)) %>% 
  mutate(Donut = case_when(Correct==max(Correct)~1,
                           TRUE~0))  %>% 
  ungroup() %>% 
  group_by(Name) %>% 
  summarise(`Donuts Won` = sum(Donut)) %>% 
  #mutate(`Donuts Won` = strrep("award,", Donuts)) %>% 
  right_join(.,indiv_disp_2) %>% 
  select(-starts_with("Week "), -Percent) %>% 
  mutate(`Season Rank` = min_rank(desc(`Season Percent`)),.before = Name) %>% 
  arrange(`Season Rank`) 
  
season_leaderboard = season_leaderboard_disp %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Season Leaderboard (Season Percent)"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
  # fmt_icon(
  #   columns = `Donuts Won`,
  #   fill_color = "gold",
  # ) %>%
  tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(season_leaderboard_disp$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(columns = c(plot))
```

```{r Printing Adj Season Leaderboard, echo=FALSE}
# Printing the Adj Season Leaderboard
  
adj_season_leaderboard_disp = indiv_disp_2 %>% select(Name, starts_with("Week ")) %>% 
  pivot_longer(starts_with("Week"),names_to = "Week", values_to = "Correct") %>% 
  group_by(Week) %>% 
  mutate(Correct = case_when(is.na(Correct)==T~0, 
                             TRUE~Correct)) %>% 
  mutate(Donut = case_when(Correct==max(Correct)~1,
                           TRUE~0))  %>% 
  ungroup() %>% 
  group_by(Name) %>% 
  summarise(`Donuts Won` = sum(Donut)) %>% 
  #mutate(`Donuts Won` = strrep("award,", Donuts)) %>% 
  right_join(.,indiv_disp_2) %>% 
  select(-starts_with("Week "), -Percent) %>% 
  mutate(`Season Rank` = min_rank(desc(`Adj Season Percent`)),.before = Name) %>% 
  arrange(`Season Rank`)

adj_season_leaderboard = adj_season_leaderboard_disp %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Season Leaderboard (Adjusted Season Percent)"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
  # fmt_icon(
  #   columns = `Donuts Won`,
  #   fill_color = "gold",
  # ) %>%
  tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(adj_season_leaderboard_disp$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(columns = c(plot))
```


```{r instructor formattable, echo=FALSE}
improvement_formatter <- 
  formatter("span", 
            style = x ~ formattable::style(
              font.weight = "bold", 
              color = ifelse(x > .5, "green", ifelse(x < .5, "red", "black"))),
             x ~ icontext(ifelse(x == max(x), "star", ""), x))

indiv_disp_3 = indiv_disp_2 %>% select(-plot)
indiv_disp_3$`Season Trend` = apply(indiv_disp_3[,2:(1+length(weeks))], 1, FUN = function(x) as.character(htmltools::as.tags(sparkline(as.numeric(x), type = "line", chartRangeMin = 0, chartRangeMax = 1, fillColor = "white"))))

indiv_table_2 = as.htmlwidget(formattable(indiv_disp_3, 
                                align = c("l", rep("c", NROW(indiv_disp_3)-1)),
              list(`Season Percent` = color_bar("#FA614B"),
              `Season Percent`= improvement_formatter,
              `Adj Season Percent`= improvement_formatter)))
              
indiv_table_2$dependencies = c(indiv_table_2$dependencies, htmlwidgets:::widget_dependencies("sparkline", "sparkline"))
```

```{r Plotting individual results over the season2, eval=FALSE, include=FALSE, out.width="100%"}
#Creating the individual plot.  
inst_indiv_plots = weekly_indiv_percent_plot %>% 
  ggplot(aes(x = factor(Week), y = Percent, color = Name))+
  geom_point()+
  geom_path(aes(x = as.factor(Week), y = Percent, color = Name, 
                group = Name))+
  ylim(c(0, 1)) +
  labs(x = "NFL Week", 
       y = "Correct Percentage", 
       title = "Weekly Individual Correct Percentage")+
  facet_wrap(~Name)+
  theme_classic()+
  theme(legend.position = "none",
        plot.title = element_text(hjust = 0.5, size = 18),
        axis.text.x=element_text(angle =45, vjust = 1, hjust = 1))
```

```{r data for data page}
inst.data = map2(inst.picks, weeks, disp_data) %>% bind_rows()
```


```{r fivethirtyeight}
inst_538 = map(results, five38) %>% unlist() %>% sum()
```

```{r pregame, eval=FALSE, include=FALSE}
#Predictions for the week

#Creating the list of group predictions each week.
games = map(inst.picks, games_fn)

#Creating the prediction table.  
pred_table = map(games, pred_table_fn)

#Printing table of instructor predictions
pred_table[[length(pred_table)]] %>% mutate(Game = row_number()) %>% 
  rename(`Votes For` = votes_for, `Votes Against` = votes_against) %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("This Week's Predictions"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
   tab_options(
    data_row.padding = px(3)
   )
```

Group Predictions
==========================================================================

Sidebar {.sidebar} 
-------------------------------------
#### CBS Sports

<font size="4">

This week we beat or tied `r cbs_experts_beat[[length(weeks)]]` of `r cbs_experts_total[[length(weeks)]]` CBS Sports' Experts.

For the season we are currently beating or tied with `r cbs_experts_beat_season[[length(weeks)]]` of `r cbs_experts_season_total[[length(weeks)]]` CBS Sports' Experts.
 
 </font>


#### ESPN

<font size="4">

We also beat or tied `r espn_experts_beat[[length(weeks)]]` of `r espn_experts_total[[length(weeks)]]` ESPN Experts.
 
For the season we are currently beating or tied with `r espn_experts_beat_season[[length(weeks)]]` of `r espn_experts_season_total[[length(weeks)]]` ESPN Experts.

</font>

Row
--------------------------------------

### Win percentage for the week

```{r}
inst_rate <- weekly_win_percentage[[length(weekly_win_percentage)]]*100
gauge(inst_rate, min = 0, max = 100, symbol = '%', gaugeSectors(
  success = c(55, 100), warning = c(40, 54), danger = c(0, 39)
))
```

### Season Win Percentage

```{r}
inst_season <- season_win_percentage*100
gauge(inst_season, min = 0, max = 100, symbol = '%', gaugeSectors(
  success = c(55, 100), warning = c(40, 54), danger = c(0, 39)
))
```

### Games Correct
```{r}
valueBox(value = season_wins,icon = "fa-trophy",caption = "Correct Games this Season")
```

### Games Picked
```{r}
valueBox(value = season_games,icon = "fa-clipboard-list",caption = "Games Picked this Season")
```

### Number of predictions
```{r}
valueBox(value = Total,icon = "fa-users",caption = "Predictions this week")
```

Row
--------------------------------------

### 

```{r}
inst_group_table
```

### 

```{r}
ggplotly(inst_group_season_plot) %>% 
  layout(title = list(y = .93, xref = "plot"),
         margin = list(t = 40))
```

Individual Predictions
==========================================================================


Sidebar {.sidebar} 
-------------------------------------

#### Best Picks of the Week.

<font size="4">

 `r indiv_winners`
 
 </font>
 
#### Best Season Correct Percentage
<font size="4">

`r indiv_season`
 
 </font>

#### Best Adjusted Season Correct Percentage
<font size="4">

`r indiv_season_adj`

 * Adjusted season percentage accounts for the number of weeks picked.
 
 </font>

row {.tabset}
--------------------------------------

### Individual Table
```{r}
indiv_table
```

<!--
### Individual Table2

```{r, out.height="100%"}
indiv_table_2
```

-->

<!--

### Individual Plots
```{r, out.width="100%"}
#ggplotly(inst_indiv_plots)
```

-->

### Season Leaderboard
```{r, out.width="100%"}
season_leaderboard
```

### Adjusted Season Leaderboard
```{r, out.width="100%"}
adj_season_leaderboard
```

Data
==========================================================================

```{r}
datatable(
  inst.data, extensions = 'Buttons', options = list(
    dom = 'Blfrtip',
    buttons = c('copy', 'csv', 'excel', 'pdf', 'print'),
    lengthMenue = list( c(10, 25, 50, 100, -1), c(10, 25, 50, 100, "All") )
  )
)
```